#include "seg.h"

void seg_tran(uchar *seg_str, uchar *seg_buf) {
	uchar i,j=0,temp;
	
	for(i=0; i<8; i++,j++) {
		switch(seg_str[j]) {
			case '0': temp = 0xc0; break;
			case '1': temp = 0xf9; break;
			case '2': temp = 0xa4; break;
			case '3': temp = 0xb0; break;
			case '4': temp = 0x99; break;
			case '5': temp = 0x92; break;
			case '6': temp = 0x82; break;
			case '7': temp = 0xf8; break;
			case '8': temp = 0x80; break;
			case '9': temp = 0x90; break;
			
			case 'F': temp = 0x8e; break;
			case 'H': temp = 0x89; break; // 1000 1001 89
			case 'A': temp = 0x88; break;
			case 'P': temp = 0x8c; break;
			
			case '-': temp = 0xBF; break;
			case ' ': temp = 0xFF; break;
			default : temp = 0xFF;
		}
		if(seg_str[j+1] == '.') {
			j++;
			temp &= 0x7F;
		}
		seg_buf[i] = temp;
	}
}


void seg_disp(uchar seg_pos, uchar *seg_buf) {
	SEG(0xFF);
	COM(0x01 << seg_pos);
	SEG(seg_buf[seg_pos]);
}
